home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / oh_towns / bascheck / bascheck.bas next >
BASIC Source File  |  1991-10-18  |  3KB  |  73 lines

  1. 10000 '      TownsFOS 対応
  2. 10010 '        BASIC版BASICチェックサム
  3. 10020 '                            Programed By Hiroki morimura
  4. 10030 DIM TSUM(10):DEFINT A-Z
  5. 10040 DEF FNHE2$(X)=RIGHT$("0"+HEX$(X),2)
  6. 10050 COLOR 4:PRINT " Basic sentence checker. "
  7. 10060         PRINT :PRINT :COLOR 7
  8. 10070 '\ プログラム ニュウリョク ヨウ ファイル オープン
  9. 10080 IF ARGC%>1 THEN FILN$=ARGV$(1):GOTO 10100
  10. 10090   LINE INPUT "ASCII-saved file descriptor ? ";FILN$
  11. 10100   OPEN "I",#1,FILN$
  12. 10110 '\ シュツリョク ヨウ ファイル オープン
  13. 10120   PRINT:PRINT "1: Display  2:Printer   Please choose. ";
  14. 10130   R$=INPUT$(1):PRINT R$
  15. 10140   IF R$="2" THEN PRT$="LPT0:" ELSE IF R$="1" THEN PRT$="SCRN:" ELSE 10130
  16. 10150   OPEN "O",#6,PRT$
  17. 10160 '
  18. 10170     X=0:Y=0:ENF=0
  19. 10180 '\ メイン ループ
  20. 10190   IF NOT(EOF(1)) THEN LINE INPUT #1, M$ ELSE M$="":SUM=0:GOTO 10300
  21. 10200   IF M$="" THEN 10190
  22. 10210 '\ キョウ バンゴウ スキップ
  23. 10220   LN=INSTR(M$," ")
  24. 10230   LIN=VAL(LEFT$(M$,LN))
  25. 10240   PRG$=RIGHT$(M$,LEN(M$)-LN)
  26. 10250 '\ ミダシ ノ ヒョウジ
  27. 10260 IF X=0 AND Y=0 THEN                                                                   PRINT #6:PRINT #6," LINE +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 SUM"
  28. 10270   IF X=0 THEN PRINT #6,USING "#####";LIN;
  29. 10280 '
  30. 10290   GOSUB 10530
  31. 10300   PRINT #6," ";FNHE2$(SUM);
  32. 10310   YSUM   = (YSUM+SUM)    MOD 256
  33. 10320   TSUM(X)= (TSUM(X)+SUM) MOD 256
  34. 10330 '
  35. 10340   IF X<9 THEN X=X+1:GOTO 10480
  36. 10350     '( ヨコ イチレツ オワッタ )
  37. 10360     PRINT #6," :";FNHE2$(YSUM):YSUM=0:X=0
  38. 10370     IF Y<9 AND NOT(EOF(1)) THEN Y=Y+1:GOTO 10480
  39. 10380       '( 1ブロック オワッタ  )
  40. 10390       PRINT #6,STRING$(41,"-"):PRINT #6,"     ";
  41. 10400         FOR X1=0 TO 9
  42. 10410           PRINT #6," ";FNHE2$(TSUM(X1));
  43. 10420           YSUM=YSUM+TSUM(X1)
  44. 10430           TSUM(X1)=0
  45. 10440         NEXT
  46. 10450       PRINT #6," /";FNHE2$(YSUM):YSUM=0:Y=0
  47. 10460     IF EOF(1) THEN 10500
  48. 10470 '
  49. 10480   GOTO 10180
  50. 10490 '
  51. 10500 CLOSE #6:CLOSE #1
  52. 10510 IF ARGC%>0 THEN RETURN ELSE END
  53. 10520 '\ 1ギョウ ノ SUM ヲ ケイサン スル
  54. 10530 SUM=0:CORT=0:FRT=0:I=1
  55. 10540 LNP=LEN(PRG$)
  56. 10550 WHILE I<=LNP
  57. 10560   L1$=MID$(PRG$,I,1)
  58. 10570   IF CORT=1 THEN 10660
  59. 10580      '( IF CORT=0 : "" ノ ソト )
  60. 10590       IF L1$=":"        THEN FRT=0
  61. 10600       IF L1$=CHR$(&H22) THEN CORT=1:GOTO 10690
  62. 10610       IF L1$=" "        THEN 10690
  63. 10620       IF L1$="'"        THEN 10710
  64. 10630       IF FRT=1 THEN 10680
  65. 10640       IF MID$(PRG$,I,3)="REM" THEN 10710 ELSE FRT=1:GOTO 10680
  66. 10650      '( IF CORT=1 : "" ノ ナカ )
  67. 10660       IF L1$=CHR$(&H22) THEN CORT=0:GOTO 10690
  68. 10670 '
  69. 10680     SUM=SUM+ASC(L1$)
  70. 10690   I=I+1
  71. 10700 WEND
  72. 10710 RETURN
  73.